
package com.eportal.service;

import com.alibaba.fastjson.JSONObject;
import com.framework.jqgrid.PageEntity;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface BaseService<T> {


	JSONObject save(T entity);

	String delete(Object key);

	JSONObject update(T entity);

	String batchDelete(Object ids[]);

	T findByPrimaryKey(Object key);

	/**
	 * 查询单个对象：如果多条记录则会抛出异常
	 *
	 * @param entity
	 * @return
	 */
	T findByObject(T entity);

	List<T> queryExampleForList(Object example);

	List<T> queryObjectForList(String order);

	List<T> queryObjectForList();

	/**
	 * 带条件查询所有
	 *
	 * @param entity
	 * @return
	 */
	List<T> queryObjectForList(T entity);

	PageInfo<T> queryPageForList();

	PageInfo<T> queryPageForList(T entity);

	PageInfo<T> queryPageForLista(T entity, PageEntity pageEntity);

	/**
	 * 构建列表（可直接返回给前台）
	 * @param pageInfo      列表对象
	 * @param pageEntity    分页参数
	 * @return
	 */
	JSONObject buildJSONPageForWeb(PageInfo<T> pageInfo, PageEntity pageEntity);

	/**
	 * 构建实体（可直接返回给前台）
	 * @param object        实体对象
	 * @return
	 */
	JSONObject buildJSONObjectForWeb(Object object);

	/**
	 * 构建实体失败（可直接返回给前台）
	 * @param object        实体对象
	 * @return
	 */
	JSONObject buildErrorJSONObjectForWeb(Object object);

}
